package com.sky.controller;

import com.sky.bean.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.swing.plaf.PanelUI;

@RestController
public class UserController {

    //为了看到缓存的数据到底是缓存在哪里。可以注入进来一个对象
    @Autowired
    private CacheManager cacheManager;


    /*
        新增操作
            @CachePut:
                作用： 把方法的返回值放到缓存里面去！
                属性：
                    cacheNames: 表示一种大的种类的key
                    key: 表示这一次缓存的key
                        #result :  来获取到方法的返回值对象
                        #root.args[0], #p0 or #a0 ：来获取形参列表中的第一个参数
                        #参数名字  ： 来获取具体的参数
     */

    @CachePut(cacheNames = "User" ,key = "#result.name")
    @RequestMapping("/add")
    public User add(User user) {

        //应该是要保存到数据库去！
        System.out.println("user = " + user);

        return user;
    }
}
